// 定义类型的字符串，及数据转换方法
// header数据类型，trans转换方法，data都是以json格式传入
let contentTypes = {
  form: {
    header: 'application/x-www-form-urlencoded',
    trans: function (data) {
      let ret = ''
      for (let it in data) {
        ret += encodeURIComponent(it) + '=' + encodeURIComponent(data[it]) + '&'
      }
      return ret.substring(0, ret.lastIndexOf('&'));
    }
  },
  file: {
    header: 'multipart/form-data',
    trans: function (data) {
      if (!(data instanceof FormData)) {     // 判断不是FormData对象
        let formData = new FormData();
        let value = null

        for (let key in data) {
          value = data[key]
          if (value instanceof File) {  // 如果是文件类型的，取一下file.name
            formData.append(key, value, value.name)
          } else {
            formData.append(key, value)
          }
        }
        return formData
      }
      return data;
    }
  },
  json: {
    header: 'application/json',
    trans: function (data) {
      return JSON.stringify(data)
    }
  }
}

export default contentTypes